package cn.highedu.coolsharkhub.service;

import cn.highedu.coolsharkhub.pojo.dto.BannerDTO;
import cn.highedu.coolsharkhub.pojo.vo.BannerHomepageVO;
import cn.highedu.coolsharkhub.pojo.vo.BannerVO;
import cn.highedu.coolsharkhub.service.exception.BlankParameterException;
import cn.highedu.coolsharkhub.service.exception.EntityNotFoundException;

import java.util.List;

/**
 * 轮播图业务层接口
 * 用于操作轮播图数据
 * @author HighEDU
 */
public interface BannerService {
    /**
     * 查询所有轮播图
     * @return 所有轮播图
     */
    List<BannerVO> findAll();

    /**
     * 根据轮播图id删除轮播图
     * @param id 轮播图id
     */
    void deleteById(Integer id);


    /**
     * 保存轮播图
     * @param bannerDTO 轮播图
     * @throws BlankParameterException 参数为空
     */
    void addBanner(BannerDTO bannerDTO);

    /**
     * 根据轮播图id修改轮播图
     * @param id 轮播图id
     * @param bannerDTO 轮播图
     *                  必须的参数
     * @throws BlankParameterException 参数为空
     * @throws EntityNotFoundException 轮播图不存在
     */
    void updateById(Integer id, BannerDTO bannerDTO);

    /**
     * 查询所有轮播图
     * 用于前端展示，只返回轮播图url和轮播图id
     * @return 所有轮播图
     */
    List<BannerHomepageVO> findAllForHomepage();

}
